// 和用户相关的路由地址 
const express = require("express");
let router = express.Router();
let { uploadimg } = require("../util");
// import "./util" 不能使用import导入
const userModel = require("../models/userModel.js");
const md5 = require("md5");

router.get("/getdata", async (req, res) => {
  // 获取用户信息
  try {
    // 后端分页逻辑
    // 1.计算页码，把页码传给前端
    let usersData = await userModel.find();
    let totalCount = usersData.length; // 总数据条数等于对象数组的长度
    let perpage = 3; // 默认每页显示3条数据
    let pageCount = Math.ceil(totalCount / perpage) // 计算 页码=总数据条数除以每页显示条数
    // 根据前端传递的 页码返还对应的数据
    // 接收 前端传递的页码；
    let { p } = req.query; // 当前的页码；
    console.log(p);
    let filterDate = await userModel.find().skip((p - 1) * perpage).limit(perpage);

    res.json({
      info: "获取用户信息成功",
      pageCount,
      status: 1,
      users: filterDate
    })
  } catch (err) {
    res.json({
      info: "获取用户信息失败",
      status: 0,
      err
    })
  }
})
// 接收前端提交过来的数据和文件
router.post("/adduser", async (req, res) => {
  // console.log(req.body);
  // 可以通过 from的parse方法 格式化req里的数据和文件；
  // err ：是否有错误
  // fields ： 数据的字段
  // files ： 上传文件的信息
  try {
    let reslut = await uploadimg(req);
    console.log(reslut);
    reslut.pwd = md5(reslut.pwd);
    reslut.time = new Date().toLocaleDateString();
    console.log(reslut);
    // 把加密之后的数据添加到数据库
    let resobj = await userModel.create(reslut);
    console.log(resobj);
    res.json({
      info: "添加用户成功",
      status: 1
    })
  } catch (err) {
    res.json({
      info: "添加用户失败",
      status: 0,
      err
    })
  }
})

// 删除用户信息
router.delete("/deluser", async (req, res) => {
  // 获取delete 传递过来的id数据
  let { _id } = req.query;
  console.log(_id);
  try {
    // 通过id删除数据库里对应的数据
    let resobj = await userModel.deleteOne({ _id });
    console.log(resobj);
    res.json({
      info: "删除成功",
      status: 1,
      resobj
    })
  } catch (err) {
    res.json({
      info: "删除失败",
      status: 0,
      err
    })
  }
})


module.exports = router;